package cn.tedu._05mvcboot01.controller;

import cn.tedu._05mvcboot01.pojo.dto.UpdateDTO;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

@Controller
public class CartsController {
    /**
     * 接收数据方式1：通过 HttpServletRequest 对象来接收;
     * 添加购物车功能
     * 1.GET请求：
     *   http://localhost:8080/v1/carts/addProduct?title=xx&price=xx
     * 2.POST请求：
     *   <input type="text" name="title">
     *   <input type="text" name="price">
     */
    @RequestMapping("/v1/carts/addProduct")
    @ResponseBody
    public String addProduct(HttpServletRequest request) {
        String title = request.getParameter("title");
        Double price = Double.valueOf(request.getParameter("price"));
        return "添加成功:" + title + "=====" + price;
    }
    /**
     * 接收参数方式2：声明参数方式接收
     * 删除购物车商品功能
     * 地址：/v1/carts/delete
     * 方法：GET
     * 查询参数：用户名username、商品编号id
     * 返回响应：恭喜你,xxx,编号为x的商品删除成功
     * http://localhost:8080/v1/carts/delete?username=只手遮天&id=666
     */
    @RequestMapping("/v1/carts/delete")
    @ResponseBody
    public String deleteProduct(String username, Integer id) {
        return "恭喜你:" + username + "删除成功:" + id;
    }
    /**
     * 接收数据方式3：声明POJO类方式
     * 修改购物车功能
     * 请求地址：/v1/carts/update
     * 请求方法：GET
     * 请求参数：商品名称title、商品价格price、商品数量number
     * 返回响应：字符串
     * http://localhost:8080/v1/carts/update?title=苹果&price=8999.99&number=2
     */
    @RequestMapping("/v1/carts/update")
    @ResponseBody
    public String updateProduct(UpdateDTO updateDTO) {
        String title = updateDTO.getTitle();
        Double price = updateDTO.getPrice();
        Integer number = updateDTO.getNumber();
        return "更新成功："+title+"价格"+price+"数量"+number;
    }
}
